package utils

import (
	"fmt"
	"github.com/jinzhu/gorm"
	"sync"
	"time"
)

var once sync.Once

type Config struct {
	Host     string
	Port     int
	UserName string
	Password string
	DBName   string
}

type SourceDB struct {
}

type TargetDB struct {
}

// 需要获取源数据得连接地址用户名和端口

func ConnetDB(config *Config) (DB *gorm.DB) {
	once.Do(func() {
		//gorm
		mysqlArgs := fmt.Sprintf("%s:%s@(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local",
			config.UserName, config.Password, config.Host, config.Port, config.DBName)
		db, err := gorm.Open("mysql", mysqlArgs)
		if err != nil {
			panic("gorm open mysql failed")
			return
		}
		sqlDB := db.DB()
		sqlDB.SetMaxIdleConns(10)  //空闲连接数
		sqlDB.SetMaxOpenConns(100) //最大连接数
		sqlDB.SetConnMaxLifetime(time.Minute)
		db.LogMode(true)
		DB = db
	})
	return DB
}

func initDB(db *gorm.DB) {

	result, _ := db.DB().Exec("desc user.record")
	println(result)
}



//其中需要自己定义修改对应得字段

func GetField(db *gorm.DB, tableName string) {

	sourceDB := new(SourceDB)
	db.Find(sourceDB)

}

//  然后批量插入到新的数据库中
